昨天及前天我們介紹了委任(Delegation)以及其屬性
今天則要介紹類型別名(Type aliases)
所謂的類型別名是對於現存的類型提供一個替代名稱
這個在類型名稱冗長時極為實用
typealias NodeSet = Set<Network.Node>
typealias FileTable<K> = MutableMap<K, MutableList<File>>
也可以做為函式別名使用
typealias MyHandler = (Int, String, Any) -> Unit
typealias Predicate<T> = (T) -> Boolean
對於巢狀類別以及內部類別也可以使用別名來簡化
class A {
inner class Inner
}
class B {
inner class Inner
}
typealias AInner = A.Inner
typealias BInner = B.Inner
需要注意的是,類型別名並非引入新的類型,它與原本類型是等價的